package com.twentytwok.hospitalsystem22K.service;

import com.twentytwok.hospitalsystem22K.common.R;
import com.twentytwok.hospitalsystem22K.pojo.Book;

import java.time.LocalDate;

public interface BookService {

    /**
     * 获取所有的预约时间段
     *
     * @author Yuanao
     * @date 2021年11月11日21:21:55
     * @return R
     */
    R getTimeQuantums();

    /**
     * 删除预约
     * @param id id
     * @return R
     */
    R deleteBook(Integer id);

    /**
     * 修改预约
     * @param book book实体类
     * @return R
     */
    R modifyBook(Book book);

    /**
     * 添加预约
     * @param book 预约对象
     * @return R
     */
    R addBook(Book book);

    /**
     * 获取指定id的预约
     * @param id id
     * @return
     */
    R getBook(Integer id);

    /**
     * 获取所有的预约信息
     * @param page page
     * @param limit 一页的数量
     * @param doctorUserId 医生id
     * @param userId 用户id
     * @return R
     */
    R getBooks(Integer page, Integer limit, Integer userId , Integer doctorUserId);

    /**
     * 获取医生时间段的预约数量
     *
     * @param doctorId 医生id
     * @param date 预约的时间
     * @param timeQuantum 时间段id
     * @return 数量
     */
    Integer getTodayBookCountByTimeQuantumId(Integer doctorId, LocalDate date, Integer timeQuantum);


    /**
     * 提交预约单
     * @param book book对象
     * @return R
     */
    R submitBook(Book book);

    /**
     * 获取指定用户的预约信息
     *
     * @param id 用户id
     * @return R
     */
    R getUserSelectBook(Integer id);
}
